﻿#pragma once
#include "CWndAddGame.h"
#include "Inject.h"	



// CWndINJ 对话框

class CWndINJ : public CDialogEx
{
	DECLARE_DYNAMIC(CWndINJ)

public:
	CWndINJ(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CWndINJ();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_PAGE_0 };
#endif

protected:
	Inject m_Inject;//用于注入代码到目标进程
	CListCtrl m_ExeList;//游戏列表
	CWndAddGame m_WndAddGame;//用于添加游戏的窗口
	CString m_pStrIniPath{};//游戏配置文件Game.ini的路径
	int m_nLstSeleted{};//选中的游戏条目


	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	

	virtual BOOL OnInitDialog();
	//传递配置文件路径,加载游戏信息到listbox显示
	void Init(CString& _path);
	//添加游戏到listbox和配置文件中
	void AddGame(CString& GameName, CString& GameFile, CString& GamePath, CString& GameCmd, CString& GameMod);
	//写入到配置文件,并更新窗口显示
	void SaveGame(CString& GameName, CString& GameFile, CString& GamePath, CString& GameCmd, CString& GameMod, int nIndex = 0);
	//从配置文件中加载游戏信息到listbox
	void LoadGame(); 
	//保存到配置文件
	void SaveLstToIni();



	BOOL B_DEBUG;//是否附加调试器
	BOOL B_PAUSE;// 是否暂停
	BOOL B_INJECT;// 是否注入模块

	//双击游戏item,启动游戏
	afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult); 
	//点击 添加游戏 按钮,选择要添加的游戏和要注入的模块
	afx_msg void OnBnClickedButton1();
	//弹出右键菜单
	afx_msg void OnNMRClickList1(NMHDR* pNMHDR, LRESULT* pResult);
	//右键菜单 配置游戏
	afx_msg void OnMenuSet();
	//右键菜单 删除游戏
	afx_msg void OnMenuDel();
};
